Argo CD Vault Plugin
https://github.com/argoproj-labs/argocd-vault-plugin/raw/main/assets/argo_vault_logo.png
このプラグインは、GitOpsやArgo CDでのシークレット管理の問題を解決することを目的としています。オペレーターやカスタムリソースの定義に依存することなく、Vaultを利用するシンプルな方法を見つけたいと思いました。このプラグインはシークレットだけでなく、デプロイメントやconfigMapなどのKubernetesリソースにも利用することができます。 argocd-repo-server の Deployment を修正する
マニフェストを生成するコンポーネント
バイナリをマウントする方法
initContainer で argocd-vault-plugin バイナリをインストール
emptyDir でマウント
環境変数に利用するプロバイダーなどを設定する
ex.) argocd-vault-plugin-credentials に秘密情報を作成する(Secret から読み込む)
Secret リソースをそのまま使う
CRD が不要なのがいい
annotations
avp.kubernetes.io/path: kv/data/path/to/secret
data
FOO: <FOO | base64encode>
argocd-vault-plugin generate - コマンド
vault から secret を取得
プレイスホルダーが修正される
ローカルで実行するためにはローカルにバイナリが必要
ローカルで環境変数を読み込み
repo-server と違う値で良い
argocd app sync --local を使う時は実行ホストの環境変数を設定する